[INFO] fetching crate key-lang 0.1.1...
[INFO] checking key-lang-0.1.1 against try#a2a6e871b05c7b8ecc9a3c8a20db1f39e995e399 for pr-145770
[INFO] extracting crate key-lang 0.1.1 into /workspace/builds/worker-6-tc2/source
[INFO] started tweaking crates.io crate key-lang 0.1.1
[INFO] finished tweaking crates.io crate key-lang 0.1.1
[INFO] tweaked toml for crates.io crate key-lang 0.1.1 written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate key-lang 0.1.1 on toolchain a2a6e871b05c7b8ecc9a3c8a20db1f39e995e399
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a2a6e871b05c7b8ecc9a3c8a20db1f39e995e399" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate key-lang 0.1.1 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a2a6e871b05c7b8ecc9a3c8a20db1f39e995e399" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+a2a6e871b05c7b8ecc9a3c8a20db1f39e995e399" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 1df3a1f8ca5a3cca962cb8261e5a71b6827ce34d5ee247edffd78ba2b177cba5
[INFO] running `Command { std: "docker" "start" "-a" "1df3a1f8ca5a3cca962cb8261e5a71b6827ce34d5ee247edffd78ba2b177cba5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1df3a1f8ca5a3cca962cb8261e5a71b6827ce34d5ee247edffd78ba2b177cba5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1df3a1f8ca5a3cca962cb8261e5a71b6827ce34d5ee247edffd78ba2b177cba5", kill_on_drop: false }`
[INFO] [stdout] 1df3a1f8ca5a3cca962cb8261e5a71b6827ce34d5ee247edffd78ba2b177cba5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+a2a6e871b05c7b8ecc9a3c8a20db1f39e995e399" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b1cde09c657e240ff7ae6e9183dc05f2db7d2754647fdeb5b98b55bd1104ef4d
[INFO] running `Command { std: "docker" "start" "-a" "b1cde09c657e240ff7ae6e9183dc05f2db7d2754647fdeb5b98b55bd1104ef4d", kill_on_drop: false }`
[INFO] [stderr]     Checking key-lang v0.1.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/runtime/externer.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |       extern fn $fname($($arg:usize,)*)-> usize {
[INFO] [stdout]    |       ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] ...
[INFO] [stdout] 57 |           Local(f)=> translate_local_impl! { f 
[INFO] [stdout]    |  ____________________-
[INFO] [stdout] 58 | |           0  agent0 ()
[INFO] [stdout] 59 | |           1  agent1 (a)
[INFO] [stdout] 60 | |           2  agent2 (a,b)
[INFO] [stdout] ...  |
[INFO] [stdout] 65 | |           7  agent7 (a,b,c,d,e,f,g)
[INFO] [stdout] 66 | |         },
[INFO] [stdout]    | |_________- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(missing_abi)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `translate_local_impl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/runtime/externer.rs:92:26
[INFO] [stdout]     |
[INFO] [stdout] 92  |               let callable:extern fn($($arg:usize,)*)-> usize = unsafe {transmute(f.ptr)};
[INFO] [stdout]     |                            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] ...
[INFO] [stdout] 109 | /   impl_arg!{
[INFO] [stdout] 110 | |     0
[INFO] [stdout] 111 | |     1  a
[INFO] [stdout] 112 | |     2  a b
[INFO] [stdout] ...   |
[INFO] [stdout] 125 | |     15 a b c d e f g h i j k l m n o
[INFO] [stdout] 126 | |   }
[INFO] [stdout]     | |___- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_arg` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]  --> src/c.rs:5:1
[INFO] [stdout]   |
[INFO] [stdout] 5 | extern {
[INFO] [stdout]   | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/runtime/externer.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |       extern fn $fname($($arg:usize,)*)-> usize {
[INFO] [stdout]    |       ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] ...
[INFO] [stdout] 57 |           Local(f)=> translate_local_impl! { f 
[INFO] [stdout]    |  ____________________-
[INFO] [stdout] 58 | |           0  agent0 ()
[INFO] [stdout] 59 | |           1  agent1 (a)
[INFO] [stdout] 60 | |           2  agent2 (a,b)
[INFO] [stdout] ...  |
[INFO] [stdout] 65 | |           7  agent7 (a,b,c,d,e,f,g)
[INFO] [stdout] 66 | |         },
[INFO] [stdout]    | |_________- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(missing_abi)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `translate_local_impl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/runtime/externer.rs:92:26
[INFO] [stdout]     |
[INFO] [stdout] 92  |               let callable:extern fn($($arg:usize,)*)-> usize = unsafe {transmute(f.ptr)};
[INFO] [stdout]     |                            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] ...
[INFO] [stdout] 109 | /   impl_arg!{
[INFO] [stdout] 110 | |     0
[INFO] [stdout] 111 | |     1  a
[INFO] [stdout] 112 | |     2  a b
[INFO] [stdout] ...   |
[INFO] [stdout] 125 | |     15 a b c d e f g h i j k l m n o
[INFO] [stdout] 126 | |   }
[INFO] [stdout]     | |___- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_arg` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]  --> src/c.rs:5:1
[INFO] [stdout]   |
[INFO] [stdout] 5 | extern {
[INFO] [stdout]   | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/main.rs:73:24
[INFO] [stdout]    |
[INFO] [stdout] 73 |     let opts = unsafe {&mut GLOBAL_OPTIONS};
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: `#[warn(static_mut_refs)]` on by default
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 73 |     let opts = unsafe {&raw mut GLOBAL_OPTIONS};
[INFO] [stdout]    |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/scan/stmt.rs:512:42
[INFO] [stdout]     |
[INFO] [stdout] 512 |           let mut place = std::mem::take(&mut crate::PLACE);
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 512 |           let mut place = std::mem::take(&raw mut crate::PLACE);
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/scan/literal.rs:303:13
[INFO] [stdout]     |
[INFO] [stdout] 303 |             super::expr::ON_PIPE.take().expect("管道占位符只能在管道操作符'|>'后使用")
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/runtime/calc.rs:415:44
[INFO] [stdout]     |
[INFO] [stdout] 415 |           let can_access_private = unsafe {(*inst.cls).cx.exports} == this.exports;
[INFO] [stdout]     |                                            ^^--------^^^^^^^^^^^^
[INFO] [stdout]     |                                              |
[INFO] [stdout]     |                                              this raw pointer has type `*mut stmt::ClassDef`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout]     = note: references are created through calls to explicit `Deref(Mut)::deref(_mut)` implementations
[INFO] [stdout]     = note: `#[deny(dangerous_implicit_autorefs)]` on by default
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]     |
[INFO] [stdout] 415 |           let can_access_private = unsafe {(&(*inst.cls).cx).exports} == this.exports;
[INFO] [stdout]     |                                            ++              +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/runtime/calc.rs:514:44
[INFO] [stdout]     |
[INFO] [stdout] 514 |           let can_access_private = unsafe {(*inst.cls).cx.exports} == this.exports;
[INFO] [stdout]     |                                            ^^--------^^^^^^^^^^^^
[INFO] [stdout]     |                                              |
[INFO] [stdout]     |                                              this raw pointer has type `*mut stmt::ClassDef`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout]     = note: references are created through calls to explicit `Deref(Mut)::deref(_mut)` implementations
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]     |
[INFO] [stdout] 514 |           let can_access_private = unsafe {(&(*inst.cls).cx).exports} == this.exports;
[INFO] [stdout]     |                                            ++              +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]   --> src/runtime/call.rs:56:45
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let cannot_access_private = unsafe {(*inst.cls).cx.exports} != self.exports;
[INFO] [stdout]    |                                             ^^--------^^^^^^^^^^^^
[INFO] [stdout]    |                                               |
[INFO] [stdout]    |                                               this raw pointer has type `*mut stmt::ClassDef`
[INFO] [stdout]    |
[INFO] [stdout]    = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout]    = note: references are created through calls to explicit `Deref(Mut)::deref(_mut)` implementations
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let cannot_access_private = unsafe {(&(*inst.cls).cx).exports} != self.exports;
[INFO] [stdout]    |                                             ++              +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]   --> src/runtime/externer.rs:49:24
[INFO] [stdout]    |
[INFO] [stdout] 49 |     Int(n)=> unsafe{Ok(transmute(*n))},
[INFO] [stdout]    |                        ---------^^^^
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        help: replace this with: `isize::cast_unsigned`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]   --> src/runtime/externer.rs:51:27
[INFO] [stdout]    |
[INFO] [stdout] 51 |     Float(n)=> (unsafe{Ok(transmute(*n))}),
[INFO] [stdout]    |                           ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: replace this with
[INFO] [stdout]    |
[INFO] [stdout] 51 -     Float(n)=> (unsafe{Ok(transmute(*n))}),
[INFO] [stdout] 51 +     Float(n)=> (unsafe{Ok(f64::to_bits(*n) as usize)}),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/runtime/externer.rs:20:26
[INFO] [stdout]    |
[INFO] [stdout] 20 |         let exec = unsafe {EXEC.as_mut().expect("未找到extern函数，这是bug")};
[INFO] [stdout]    |                            ^^^^ mutable reference to mutable static
[INFO] [stdout] ...
[INFO] [stdout] 57 |           Local(f)=> translate_local_impl! { f 
[INFO] [stdout]    |  ____________________-
[INFO] [stdout] 58 | |           0  agent0 ()
[INFO] [stdout] 59 | |           1  agent1 (a)
[INFO] [stdout] 60 | |           2  agent2 (a,b)
[INFO] [stdout] ...  |
[INFO] [stdout] 65 | |           7  agent7 (a,b,c,d,e,f,g)
[INFO] [stdout] 66 | |         },
[INFO] [stdout]    | |_________- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: this warning originates in the macro `translate_local_impl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/primitive/mod.rs:76:22
[INFO] [stdout]    |
[INFO] [stdout] 76 |   if let Some(cls) = &mut CLASSES {
[INFO] [stdout]    |                      ^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 76 |   if let Some(cls) = &raw mut CLASSES {
[INFO] [stdout]    |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/primitive/mod.rs:100:40
[INFO] [stdout]     |
[INFO] [stdout] 100 |       let can_access_private = unsafe {(*inst.cls).cx.exports} == this.exports;
[INFO] [stdout]     |                                        ^^--------^^^^^^^^^^^^
[INFO] [stdout]     |                                          |
[INFO] [stdout]     |                                          this raw pointer has type `*mut stmt::ClassDef`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout]     = note: references are created through calls to explicit `Deref(Mut)::deref(_mut)` implementations
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]     |
[INFO] [stdout] 100 |       let can_access_private = unsafe {(&(*inst.cls).cx).exports} == this.exports;
[INFO] [stdout]     |                                        ++              +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/primitive/kstd.rs:52:36
[INFO] [stdout]    |
[INFO] [stdout] 52 |     let mut place = std::mem::take(&mut crate::PLACE);
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 52 |     let mut place = std::mem::take(&raw mut crate::PLACE);
[INFO] [stdout]    |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]   --> src/primitive/float.rs:92:14
[INFO] [stdout]    |
[INFO] [stdout] 92 |       unsafe{std::mem::transmute(b)}
[INFO] [stdout]    |              -------------------^^^
[INFO] [stdout]    |              |
[INFO] [stdout]    |              help: replace this with: `f64::from_ne_bytes`
[INFO] [stdout]    |
[INFO] [stdout]    = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `key-lang` (bin "key-lang" test) due to 4 previous errors; 12 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/main.rs:73:24
[INFO] [stdout]    |
[INFO] [stdout] 73 |     let opts = unsafe {&mut GLOBAL_OPTIONS};
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: `#[warn(static_mut_refs)]` on by default
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 73 |     let opts = unsafe {&raw mut GLOBAL_OPTIONS};
[INFO] [stdout]    |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/scan/stmt.rs:512:42
[INFO] [stdout]     |
[INFO] [stdout] 512 |           let mut place = std::mem::take(&mut crate::PLACE);
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 512 |           let mut place = std::mem::take(&raw mut crate::PLACE);
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/scan/literal.rs:303:13
[INFO] [stdout]     |
[INFO] [stdout] 303 |             super::expr::ON_PIPE.take().expect("管道占位符只能在管道操作符'|>'后使用")
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/runtime/calc.rs:415:44
[INFO] [stdout]     |
[INFO] [stdout] 415 |           let can_access_private = unsafe {(*inst.cls).cx.exports} == this.exports;
[INFO] [stdout]     |                                            ^^--------^^^^^^^^^^^^
[INFO] [stdout]     |                                              |
[INFO] [stdout]     |                                              this raw pointer has type `*mut stmt::ClassDef`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout]     = note: references are created through calls to explicit `Deref(Mut)::deref(_mut)` implementations
[INFO] [stdout]     = note: `#[deny(dangerous_implicit_autorefs)]` on by default
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]     |
[INFO] [stdout] 415 |           let can_access_private = unsafe {(&(*inst.cls).cx).exports} == this.exports;
[INFO] [stdout]     |                                            ++              +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/runtime/calc.rs:514:44
[INFO] [stdout]     |
[INFO] [stdout] 514 |           let can_access_private = unsafe {(*inst.cls).cx.exports} == this.exports;
[INFO] [stdout]     |                                            ^^--------^^^^^^^^^^^^
[INFO] [stdout]     |                                              |
[INFO] [stdout]     |                                              this raw pointer has type `*mut stmt::ClassDef`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout]     = note: references are created through calls to explicit `Deref(Mut)::deref(_mut)` implementations
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]     |
[INFO] [stdout] 514 |           let can_access_private = unsafe {(&(*inst.cls).cx).exports} == this.exports;
[INFO] [stdout]     |                                            ++              +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]   --> src/runtime/call.rs:56:45
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let cannot_access_private = unsafe {(*inst.cls).cx.exports} != self.exports;
[INFO] [stdout]    |                                             ^^--------^^^^^^^^^^^^
[INFO] [stdout]    |                                               |
[INFO] [stdout]    |                                               this raw pointer has type `*mut stmt::ClassDef`
[INFO] [stdout]    |
[INFO] [stdout]    = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout]    = note: references are created through calls to explicit `Deref(Mut)::deref(_mut)` implementations
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let cannot_access_private = unsafe {(&(*inst.cls).cx).exports} != self.exports;
[INFO] [stdout]    |                                             ++              +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]   --> src/runtime/externer.rs:49:24
[INFO] [stdout]    |
[INFO] [stdout] 49 |     Int(n)=> unsafe{Ok(transmute(*n))},
[INFO] [stdout]    |                        ---------^^^^
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        help: replace this with: `isize::cast_unsigned`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]   --> src/runtime/externer.rs:51:27
[INFO] [stdout]    |
[INFO] [stdout] 51 |     Float(n)=> (unsafe{Ok(transmute(*n))}),
[INFO] [stdout]    |                           ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: replace this with
[INFO] [stdout]    |
[INFO] [stdout] 51 -     Float(n)=> (unsafe{Ok(transmute(*n))}),
[INFO] [stdout] 51 +     Float(n)=> (unsafe{Ok(f64::to_bits(*n) as usize)}),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/runtime/externer.rs:20:26
[INFO] [stdout]    |
[INFO] [stdout] 20 |         let exec = unsafe {EXEC.as_mut().expect("未找到extern函数，这是bug")};
[INFO] [stdout]    |                            ^^^^ mutable reference to mutable static
[INFO] [stdout] ...
[INFO] [stdout] 57 |           Local(f)=> translate_local_impl! { f 
[INFO] [stdout]    |  ____________________-
[INFO] [stdout] 58 | |           0  agent0 ()
[INFO] [stdout] 59 | |           1  agent1 (a)
[INFO] [stdout] 60 | |           2  agent2 (a,b)
[INFO] [stdout] ...  |
[INFO] [stdout] 65 | |           7  agent7 (a,b,c,d,e,f,g)
[INFO] [stdout] 66 | |         },
[INFO] [stdout]    | |_________- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: this warning originates in the macro `translate_local_impl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/primitive/mod.rs:76:22
[INFO] [stdout]    |
[INFO] [stdout] 76 |   if let Some(cls) = &mut CLASSES {
[INFO] [stdout]    |                      ^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 76 |   if let Some(cls) = &raw mut CLASSES {
[INFO] [stdout]    |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]    --> src/primitive/mod.rs:100:40
[INFO] [stdout]     |
[INFO] [stdout] 100 |       let can_access_private = unsafe {(*inst.cls).cx.exports} == this.exports;
[INFO] [stdout]     |                                        ^^--------^^^^^^^^^^^^
[INFO] [stdout]     |                                          |
[INFO] [stdout]     |                                          this raw pointer has type `*mut stmt::ClassDef`
[INFO] [stdout]     |
[INFO] [stdout]     = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout]     = note: references are created through calls to explicit `Deref(Mut)::deref(_mut)` implementations
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]     |
[INFO] [stdout] 100 |       let can_access_private = unsafe {(&(*inst.cls).cx).exports} == this.exports;
[INFO] [stdout]     |                                        ++              +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/primitive/kstd.rs:52:36
[INFO] [stdout]    |
[INFO] [stdout] 52 |     let mut place = std::mem::take(&mut crate::PLACE);
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 52 |     let mut place = std::mem::take(&raw mut crate::PLACE);
[INFO] [stdout]    |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]   --> src/primitive/float.rs:92:14
[INFO] [stdout]    |
[INFO] [stdout] 92 |       unsafe{std::mem::transmute(b)}
[INFO] [stdout]    |              -------------------^^^
[INFO] [stdout]    |              |
[INFO] [stdout]    |              help: replace this with: `f64::from_ne_bytes`
[INFO] [stdout]    |
[INFO] [stdout]    = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `key-lang` (bin "key-lang") due to 4 previous errors; 12 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "b1cde09c657e240ff7ae6e9183dc05f2db7d2754647fdeb5b98b55bd1104ef4d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b1cde09c657e240ff7ae6e9183dc05f2db7d2754647fdeb5b98b55bd1104ef4d", kill_on_drop: false }`
[INFO] [stdout] b1cde09c657e240ff7ae6e9183dc05f2db7d2754647fdeb5b98b55bd1104ef4d
